﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SFML.Graphics;
using SFML.Window;

namespace Strom.Client.Graphic
{
    public class TextEngine
    {
        // Dessine du texte
        public static void Draw(string text, int x, int y, Color color, bool drawBounds, Color boundColor)
        {
            // Dessin du contour
            if (drawBounds) DrawBounds(text, x, y, boundColor);

            // Création du texte
            Var.GameText = new Text
                               {
                                   CharacterSize = 15,
                                   Font = Var.GameFont,
                                   DisplayedString = text,
                                   Color = color,
                                   Position = new Vector2f(x, y) // position du texte
                               };

            // Affichage du texte
            Var.RenderWin.Draw(Var.GameText);

            // Destruction du texte
            Var.GameText.Dispose();
        }

        // Dessin du contour de texte
        static void DrawBounds(string text, int X, int Y, Color color)
        {
            // Création du texte
            Var.GameText = new Text
                               {
                                   CharacterSize = 15,
                                   Font = Var.GameFont,
                                   DisplayedString = text,
                                   Color = color,
                                   Position = new Vector2f(X - 1, Y + 1) // position du texte
                               };

            // Positionnement + affichage du texte
            Var.RenderWin.Draw(Var.GameText);
            Var.GameText.Position = new Vector2f(X + 1, Y + 1);
            Var.RenderWin.Draw(Var.GameText);
            Var.GameText.Position = new Vector2f(X + 1, Y - 1);
            Var.RenderWin.Draw(Var.GameText);
            Var.GameText.Position = new Vector2f(X - 1, Y - 1);
            Var.RenderWin.Draw(Var.GameText);
        }
    }
}
